package avaliacao.visao;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import avaliacao.modelo.Estoque;
import avaliacao.modelo.Produto;

/**
 * Servlet implementation class PaginaPrincipal
 */
@WebServlet("/index.html")
public class PaginaPrincipal extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public PaginaPrincipal() {
        super();
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		HttpSession session = request.getSession(true);
		@SuppressWarnings("unchecked")
		Map<Integer, Produto> carrinho = (Map<Integer, Produto>) session.getAttribute("carrinho");
		if (carrinho == null) {
			carrinho = new HashMap<Integer, Produto>();
		}
		
		Estoque estoque = Estoque.getInstance();
		Iterator<Produto> produtos = estoque.getProdutos();
		
		PrintWriter out = response.getWriter();
		response.setContentType("text/html");
		out.println("<!DOCTYPE html>\n"+
					"<html>\n"+
					"<head>\n"+
					"<meta charset=\"utf-8\">\n"+
					"<title>Monte o seu carrinho de compras</title>\n"+
					"</head>\n"+
					"<body>\n"+
					"<h2>Lista de Produtos</h2>\n"+
					"<a href=\"/AvaliacaoServlet/carrinhoDeCompra\">Acesse o seu carrinho ("+carrinho.size()+")</a><br/>"+ 
					"<table border=\"1\">\n"+
					"<tr>\n"+
					"<th>Código</th>\n"+
					"<th>Produto</th>\n"+
					"<th>Preço</th>\n"+
					"<th>Comprar</th>\n"+
					"</tr>\n");
		while (produtos.hasNext()) {
			Produto p = produtos.next();
			out.println("<tr><td align=\"center\">"+p.getCodigo()+"</td>\n"+
						"<td>"+p.getNome()+"</td>\n"+
						"<td align=\"center\">"+p.getPreco()+"</td>");
			if ( carrinho != null && !carrinho.containsKey(p.getCodigo()) ) {
				out.println("<td><form action=\"/AvaliacaoServlet/adicionaAoCarrinho?id="+p.getCodigo()+"\" method=\"post\"><input type=\"submit\" value=\"Adicionar ao carrinho\"></form></td></tr>");
			} else {
				out.println("<td>&nbsp;</td>");
			}
		}
		out.println("</table>\n"+
					"</body>\n"+
					"</html>\n");
		session.setAttribute("carrinho", carrinho);
	}

}
